import { messages } from "share/common";

/**
 * 真·鬼才处理
 * 一半写死
 * 一半后端取
 * 前端再过滤
 * 恶心len报表天下第一
 * 我：这一块下个迭代必须改掉，维护成本太高了，写到后面改也改不动了
 * 后端：.
 */

//报表权限模型
const reportPermissionModel = {
  id: null,//权限id，唯一
  sourceReportId: null,//报表id
  reportName: null,//报表名字，后端不返回，前端加上
  remark: null,//说明，支持多语言
  i18n: {},
  tenantId: null,//租户id
  enable: true,//是否启用
  delete: false,
  // 权限:是值列表，
  // 如果是值列表的下级选项，可能会有多个，比如公司、账套、成本中心、、、
  _permission: [ 'all' ],//前端在响应数据中添加上（通过 permission）
  _permissionName: "全部",//前端在响应数据中添加上（通过 permission）
  permissionDes: "",//后端返回
  permission: [
    {
      "permissionProp": "",
      "permissionValue": "",
      "permissionDesc": ""
    },
  ],
  //适用人员
  //grant[grantProp] 如果是用户，会有分页查询接口
  //all 全员可见 deptmanager 部门经理可见 costmanager 成本中心经理可见
  _grant: "all",//前端在响应数据中添加上（通过 grant）
  _grantName: "全员可见",//前端在响应数据中添加上（通过 grant）
  grantDes: "",//后端返回
  grant: [
    {
      "id": 1,
      "grantProp": "",
      "grantValue": "",
      "grantDesc": ""
    }
  ],
};

/*
* 权限范围类型
* 前端写死的值列表
* */
const grantArr = [
  {
    id: 1,
    name: messages('data-center.key38')/*全员可见*/,
    value: "all"
  },
  {
    id: 2,
    name: messages('data-center.key37')/*指定人员*/,
    value: "user"
  },
  {
    id: 3,
    name: messages('data-center.key39')/*部门经理可见*/,
    value: "deptmanager"
  },
  {
    id: 4,
    name: messages('data-center.key40')/*成本中心经理可见*/,
    value: "costmanager"
  },
  {
    id: 5,
    name: messages('data-center.key113')/*指定人员组*/,
    value: "userGroup"
  },
];

const APP_PERSONAL_REPORT_ID = 20001; // app个人报表
const APP_DEPARTMENT_REPORT_ID = 20002; // app部门报表
const APP_COST_CENTER_REPORT_ID = 20003;  // app成本中心报表
const WEB_PERSONAL_REPORT_ID = 10011; // web个人报表

const APP_REPORT_ARRAY = [
  APP_PERSONAL_REPORT_ID,
  APP_DEPARTMENT_REPORT_ID,
  APP_COST_CENTER_REPORT_ID
];


// 用于过滤可选的报表可见人员项
const GRANT_FILTER = {
  [APP_PERSONAL_REPORT_ID]: {
    "all": true,
    "user": true,
    "userGroup": true,
  },
  [APP_DEPARTMENT_REPORT_ID]: {
    "user": true,
    "deptmanager": true,
    "costmanager": true,
    "userGroup": true,
  },
  [APP_COST_CENTER_REPORT_ID]: {
    "user": true,
    "costmanager": true,
    "userGroup": true,
  }
};

/**
 * 过滤需要特别注意
 * 三个app报表和web个人报表过滤时，为true表示显示
 * 其他报表过滤可见数据范围时，为true表示隐藏
 * 设计很奇怪，但我也没法
 */
// 用来过滤可选的报表可见数据范围
const DATA_AREA_FILTER = {
  [APP_PERSONAL_REPORT_ID]: {
    "applicant": true,
  },
  [APP_DEPARTMENT_REPORT_ID]: {
    "user_mng_dept": true,
    "user_mng_dept_full": true,
  },
  [APP_COST_CENTER_REPORT_ID]: {
    "user_mng_cci": true,
  },
  [WEB_PERSONAL_REPORT_ID]: {
    "applicant": true,
  },
  normal: {
    "user_mng_dept": true,
    "user_mng_dept_full": true,
    "user_mng_cci": true,
  }
};

// 新增分配时默认适用人员
const DEFAULT_GRANT = {
  [APP_PERSONAL_REPORT_ID]: {
    value: "all",
    name: messages('data-center.key38')/*全员可见*/
  },
  [APP_DEPARTMENT_REPORT_ID]: {
    value: "user",
    name: messages('data-center.key37')/*指定人员*/
  },
  [APP_COST_CENTER_REPORT_ID]: {
    value: "user",
    name: messages('data-center.key37')/*指定人员*/
  }
};

// 新增分配时默认可见数据范围
const DEFAULT_PERMISSION = {
  [APP_PERSONAL_REPORT_ID]: {
    value: ["applicant"],
    name: messages('data-center.key146')/*申请人自己*/
  },
  [APP_DEPARTMENT_REPORT_ID]: {
    value: ["user_mng_dept"],
    name: messages('data-center.key147')/*人员管理部门，不包含子部门*/
  },
  [APP_COST_CENTER_REPORT_ID]: {
    value: ["user_mng_cci"],
    name: messages('data-center.key148')/*人员管理成本中心，不包括子成本中心*/
  },
  [WEB_PERSONAL_REPORT_ID]: {
    value: ["applicant"],
    name: messages('data-center.key146')/*申请人自己*/
  },
};

export {
  grantArr,
  reportPermissionModel,
  APP_PERSONAL_REPORT_ID,
  APP_DEPARTMENT_REPORT_ID,
  APP_COST_CENTER_REPORT_ID,
  WEB_PERSONAL_REPORT_ID,
  GRANT_FILTER,
  DATA_AREA_FILTER,
  DEFAULT_GRANT,
  DEFAULT_PERMISSION,
  APP_REPORT_ARRAY
}
